import greenfoot.*;  // (World, Actor, GreenfootImage, and Greenfoot)
import java.util.List;

/**
 * Esta clase simula el movimiento del actor
 */
public class Mover extends Actor
{
    private static final double velocidad = 5.0;
    
    /**
     * Gira 90 grados a la derecha.
     */
    public void turn()
    {
        turn(90);
    }
    
    /**
     * Gira la cantidad de grados que le llega
     */
    public void turn(int angulo)
    {
        setRotation(getRotation() + angulo);
    }
    
    /**
     * Mueve al objeto una posicion en la direccion actual
     */
    public void move()
    {
        move(velocidad);
    }
    
    /**
     * Muevo una direccion especifica en la direccion actual
     */
    public void move(double distance)
    {
        double angle = Math.toRadians( getRotation() );
        int x = (int) Math.round(getX() + Math.cos(angle) * distance);
        int y = (int) Math.round(getY() + Math.sin(angle) * distance);
        
        setLocation(x, y);
    }
    
    /**
     * Checa si el tanque esta en el borde del mundo.
     */
    public boolean bordeMundo()
    {
        if(getX() < 20 || getX() > getWorld().getWidth() - 20)
            return true;

        if(getY() < 20 || getY() > getWorld().getHeight() - 20)
            return true;
        else
            return false;
    }
    
    /**
     * Checa si el tanque esta fuera del mundo.
     * si esta lo regresa dentro
     */
    public boolean  fueraMundo()
    {
        return(getX()>=getWorld().getWidth()) || (getX()<0) || (getY() >=getWorld().getHeight()) || (getY()< 0);
    }
    
    /**
     * Checa si hay un objeto alrededor
     */
    public boolean HayObjeto()
    {
        List list=getNeighbours(35,true, null);
        Arbusto ar=new Arbusto(); 
        List listAr=getNeighbours(35,true, Arbusto.class);
        
        if(list.size()!=0)
        {
            if(listAr.size()!=0)
                return false;
            else
                return true;
        }
        else
            return false;
    }
}   